package config

type JWTConfig struct {
	SigningKey string `mapstructure:"signing_key" json:"signing_key"` //秘钥
}

type MysqlConfig struct {
	User     string `json:"user"`
	PassWord string `mapstructure:"password" json:"password"`
	Host     string `json:"host"`
	Port     uint64 `json:"port"`
	Name     string `mapstructure:"db" json:"db"`
}

type ConsulConfig struct {
	Host string `json:"host"`
	Port uint64 `json:"port"`
}

type JaegerConfig struct {
	Host        string `json:"host"`
	Port        uint64 `json:"port"`
	ServiceName string `json:"serviceName"`
}

type HystrixConfig struct {
	Name string `json:"name"`
	Port uint64 `json:"port"`
}

type PrometheusConfig struct {
	Port uint64 `json:"port"`
}
type ServiceConfig struct {
	Name           string           `json:"name"`
	Host           string           `json:"host"`
	Port           uint64           `json:"port"`
	Tags           []string         `json:"tags"`
	JWTInfo        JWTConfig        `mapstructure:"jwt" json:"jwt"`
	MysqlInfo      MysqlConfig      `mapstructure:"mysql" json:"mysql"`
	ConsulInfo     ConsulConfig     `mapstructure:"consul" json:"consul"`
	JaegerInfo     JaegerConfig     `mapstructure:"jaeger" json:"jaeger"`
	HystrixInfo    HystrixConfig    `mapstructure:"hystrix" json:"hystrix"`
	PrometheusInfo PrometheusConfig `mapstructure:"prometheus" json:"prometheus"`
}

type NacosConfig struct {
	Host      string
	Port      uint64
	Namespace string
	DataId    string `mapstructure:"data_id"`
	Group     string
}
